package com.hbnu.system.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.hbnu.system.config.PostDeserializer;
import com.hbnu.system.core.query.SearchPage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDate;

@Data
public class SearchWorkDTO extends SearchPage
{
    /**
     * 统计分类
     */
    @ApiModelProperty(value = "统计分类")
    private String classifi;

    /**
     * 所属机构
     */
    @ApiModelProperty(value = "所属机构")
    private String organization;

    /**
     * 署名单位
     */
    @ApiModelProperty(value = "署名单位")
    private String signedUnit;

    /**
     * 论文名称
     */
    @ApiModelProperty(value = "论文名称")
    private String paperName;

    /**
     * 刊物名称
     */
    @ApiModelProperty(value = "刊物名称")
    private String periodicalName;

    /**
     * 刊物分类
     */
    @ApiModelProperty(value = "刊物分类")
    private String periodicalCate;

    /**
     * 第一作者
     */
    @ApiModelProperty(value = "第一作者")
    private String leadAuthor;

    /**
     * 出版、发表、使用时间
     */
    @ApiModelProperty(value = "出版、发表、使用时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate publicationTime;

    /**
     * 收录情况
     */
    @ApiModelProperty(value = "收录情况")
    private String inclusionState;

    /**
     * 论文字数（千字
     */
    @ApiModelProperty(value = "论文字数")
    private String wordsNum;

    /**
     * CN号
     */
    @ApiModelProperty(value = "CN号")
    private String CNnum;

    /**
     * ISSN或ISBN号
     */
    @ApiModelProperty(value = "ISSN或ISBN号")
    private String StandardNumber;

    /**
     * 影响因子
     */
    @ApiModelProperty(value = "影响因子")
    private String factors;

    /**
     * 论文分类
     */
    @ApiModelProperty(value = "论文分类")
    private String paperCate;

    /**
     * 年卷期页码
     */
    @ApiModelProperty(value = "年卷期页码")
    private String annualVolumePage;

    /**
     * 论文来源
     */
    @ApiModelProperty(value = "论文来源")
    private String paperOrigin;

    /**
     * 研究类别
     */
    @ApiModelProperty(value = "研究类别")
    private String researchCate;

    /**
     * 一级学科
     */
    @ApiModelProperty(value = "一级学科")
    private String firstDiscipline;

    /**
     * 二级学科
     */
    @ApiModelProperty(value = "二级学科")
    private String secondaryDiscipline;

    /**
     * 是否受学校经费资助
     */
    @ApiModelProperty(value = "是否受学校经费资助")
    private String schoolSup;

    /**
     * 附件
     */
    @ApiModelProperty(value="附件")
    @JsonDeserialize(using = PostDeserializer.class)
    private byte[] annex;

    /**
     * 成果引用采纳情况
     */
    @ApiModelProperty(value = "成果引用采纳情况")
    private String introductionAdoption;

    /**
     * 成果摘要
     */
    @ApiModelProperty(value = "成果摘要")
    private String resultsExcerpt;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String notes;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    private String entered;

    /**
     * 录入日期
     */
    @ApiModelProperty(value = "录入日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate enteredDate;

    /**
     * 所有作者
     */
    @ApiModelProperty(value = "所有作者")
    private String allAuthor;

    /**
     * 关联项目
     */
    @ApiModelProperty(value = "关联项目")
    private String associatedProjects;

    /**
     * 审核结果
     */
    @ApiModelProperty(value = "审核结果")
    private String status;
}
